package com.newland.esp.service.user;

import com.baomidou.mybatisplus.extension.service.IService;
import com.newland.esp.common.util.DataResult;
import com.newland.esp.entity.user.AdminInfoEntity;
import com.newland.esp.vo.response.user.AdminInfoSearchVO;
import com.newland.esp.vo.response.user.TableDataVO;
import org.springframework.web.bind.annotation.RequestBody;

public interface AdminInfoService extends IService<AdminInfoEntity> {


    /**
     * 通过角色Id和主键id 修改用户id   (不同的userId（1-5） 对应不同的roleId 不同的roleId拥有不同的authId)
     * @param id
     * @param roleId
     * @return
     */
    DataResult setUserIdByRoleId(Short id,Short roleId);
    /**
     *  查询所有权限
     *
     * @return
     */
    DataResult GetAllAuth();
    /**
     * 用户信息的表格显示
     * @param page 当前页
     * @param limit 每页显示条数
     * @param adminInfoSearchVO 查询条件 可以为空
     * @return 分页数据
     */
    TableDataVO<AdminInfoEntity> findAdminInfo(Integer page, Integer limit,
    @RequestBody(required = false) AdminInfoSearchVO adminInfoSearchVO);

    /**
     * 添加新用户
     * @param adminInfo 用户信息
     * @return 成功或失败的结果对象
     */
    DataResult addAdminInfo(AdminInfoEntity adminInfo);

    /**
     * 修改用户
     * @param adminInfo 用户信息
     * @return 成功或失败的结果对象
     */
    DataResult updateAdminInfo(AdminInfoEntity adminInfo);

    /**
     * 通过用户Id获取角色Id
     * @param userId
     * @return
     */
    DataResult getRoleIdByUserId(Short userId);

    /**
     * 查询所有权限
     * @return  列表显示
     */
    DataResult GetAllAuthInfo();

    /**
     * 查询所有权限
     * @return  子父级树状显示
     */
    DataResult getUserAuthList();

    /**
     * 查询每一个角色对应的权限 以子父级树状显示
     * @return
     */
    DataResult getRoleAuthChildrenList();

    /**
     * 根据roleId 和 authId 删除用户所属角色对应的权限
     * @param roleId
     * @param authId
     * @return 当前角色的权限
     */
    DataResult deleteRoleAuth(Short roleId, Short authId);

    DataResult updateAuthMenu(Short roleId, Short[] authIds);

    DataResult getRoleAuthChildrenListByRoleId(Short roleId);
}
